import router from './index'
import store from '@/store'

const whiteList = ['/login', '/404']
router.beforeEach(async (to, from, next) => {
  const token = store.getters.token
  // console.log(token)
  // 如果有token，并且访问的是登录页，跳转到首页
  if (token) {
    if (to.path === '/login') {
      next('/')
    } else {
      // 1、如果用户当前有token，并且登录的非登录页，那么在用户发起请求时获取数据，同时如果当前页面有值就不再发起请求，减少http请求
      if (!store.getters.userId) {
        await store.dispatch('user/getUserInfo') // 由于获取信息属于异步操作，因此需要await转为同步拿到信息才能放行
      }
      next()
    }
  } else { // 如果没有token访问的页面是否为白名单不是敏感页面，是则放行，不是则跳到登录
    // console.log(token, to.path)
    if (whiteList.indexOf(to.path) > -1) {
      next()
    } else {
      next('/login')
    }
  }
})

export default router
